vlwkaos' digital garden

Run Dockerized Image

로컬에서 하는 방법은 다음과 같다

Container

docker run {{dockerID}}

를 실행하면 된다. 그러나 지정한 포트로 접속해도 접속할 수 없을 것이다. 왜냐, 도커에서만 우리가 지정한 포트를 노출시켰지 로컬 환경에서는 여전히 막혀있기 때문이다.

docker run -p 5000:8080 {{dockerID}}

왼쪽은 로컬 포트이고 오른쪽은 docker 에서 지정한 포트이다. -p 옵션으로 포트포워딩을 하는 것이다. (오른쪽=돌고있는 서비스에 접근하기 위한 포트)

한가지 기억할 점은 이 상태에서 터미널을 종료하더니라도 container는 여전히 실행 중이라는 점이다. container를 직접 종료시켜야한다.

docker ps
docker stop {{id}}

container 끼리 데이터를 공유하고 싶을 수 있다. 이럴 때는 Volume을 이용한다.

Volume

docker volume create shared-vol

Volume은 그냥 공용 폴더라고 보면된다. Volume은 파일을 유지시킬 수 있고 각기 다른 Container에서 가져다 쓸 수 있다.

docker run --mount source=shared-vol,target=/folder

Debugging

Docker GUI를 이용하여 현재 실행중 상태와 여러가지 로그를 볼 수 있다.

  • 1 process per container

이미지 내부 쉘 접근

도커를 열고 실행중인 인스턴스를 찾는다.

sudo docker exec -it $CONTAINER_NAME /bin/sh

Referred in

Run Dockerized Image